const express =require('express')
const path = require('path')

const route = express.Router()
const advModel =require('../db/model/advModel')//引入adv的数据库集合

//引入formData格式的解析器
const formidable = require('formidable')


//添加广告的接口
route.post('/addAdv',async(req,res)=>{
     //formidable调用,可以接受fromData格式中携带的文件,配置对象中可以配置文件存储的位置和添加后缀名
    const form = formidable({
        //接收到文件以后,存放的位置
        uploadDir:path.resolve(__dirname,'../upload'),//这个文件夹要自己创建好
        keepExtensions:true //是否保留文件的后缀名
    })
     
//调用formidable方法后,得到一个form对象,form对象的parse方法接受req对象进行解析,解析完成后调用回调函数
    form.parse(req,async(err,params,file)=>{
 //回调函数接受3个参数,第一个是错误捕获,第二是除文件以外所有的参数组成的对象,第三个参数是上传的文件详情
        const{
            //params得到的是由input标签的name属性作为键，值为用户输入的值组成的对象
            advTitle,
            advType,
            advOrder
        }= params;
   //向数据库添加数据     
  try{
    await   advModel.create({//因为这个mongoose的所有数据库方法都返回promise实例，值是查询到的值
        advTitle,
        advType,
        advOrder,
        advHref://第三个参数file是一个对象，对象中有一个属性(这个属性的名字为提交图片的input框的name的属性值)，属性的值为一个对象，对象中有一个属性为newFilename，这个就是给上传的图片取的新的文件名，我们通过文件夹的路径进行拼接就可以获得图片的路径
        '/upload/'+file.advPic.newFilename,
        addTime:new Date().toLocaleString()
    })
    return res.send({
        code:10000,
        msg:'添加广告成功',
        data:null
    })
  }catch(e){
    console.log('添加广告数据库操作出现异常'+e.message)
    return res.send({
        code:10001,
        msg:'添加广告数据库操作出现异常'+e.message,
        data:null
    })
  }


    })

     
 
})
module.exports = route;